#include <stdio.h>
#include <stdlib.h>

typedef struct stu {
	char name[20];
	int num;
	int age;
} Stu;

int main() {
	Stu stu1[4], stu2[4];
	FILE *fp;
	int i;
	printf("input data:\n");
	for (i = 0; i < 4; i++) {
		printf("姓名、学号和年龄:");
		scanf("%s %d %d", stu1[i].name, &stu1[i].num, &stu1[i].age);
	}
	// 以读/写方式打开或新建一个二进制文件，允许读和写。
	fp = fopen("file3.dat", "wb+");
	if (fp == NULL) {
		printf("文件不能打开！\n");
		exit(0);
	}
	else {
		for (i = 0; i < 4; i++) {
			if (fwrite(&stu1[i], sizeof(stu1), 1, fp) != 1)
				printf("不能写入，出错！\n");
			else
				printf("成功写入一个元素!\n");
		}
	}
	fclose(fp);
	//打开一个只读的二进制文件
	fp = fopen("file3.dat", "rb");
	if (fp == NULL) {
		printf("文件不能打开！\n");
		exit(0);
	}
	for (i = 0; i < 4; i++) {
		if (fread(&stu2[i], sizeof(stu2), 1, fp) != 1)
			printf("不能从文件读入!\n");
		else {
			printf("%s  %d  %d\n", stu2[i].name, stu2[i].num, stu2[i].age);
		}
	}
	fclose(fp);
	return 0;
}
